/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pbl_servidor;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Asuka
 */
public class TrataCliente {
    
    private Usuario user;
    private List<Usuario> listaUsers;
    private String DadosUsuario;
    private Socket cli;
    private TelaServidor  telaServidor;
            
    
    public TrataCliente(String du,Socket cli){
        
        this.DadosUsuario = du;
        this.cli = cli;
        this.listaUsers = new ArrayList <Usuario>();
    }

    public void mandaMsgsCliente(String msgLidaDoCliente){
        
            DataOutputStream escrevendoProCliente = null;
            DadosUsuario = msgLidaDoCliente;
            System.out.println(DadosUsuario);
            telaServidor.exibeMensagem("\n - " + DadosUsuario);
            try {
              //  System.out.println("entrei no primeiro try");
                escrevendoProCliente = new DataOutputStream(cli.getOutputStream());
             //   if(DadosUsuario.split(":")[0].equals("O cliente se conectou ao servidor!")){
               //     escrevendoProCliente.writeUTF("AbraTelaLogin:");
                //}
                if(DadosUsuario.split(":")[0].equals("CAD")){
                    System.out.println("entrei no primeiro if");
                    if(listaUsers.size() == 0){
                            Usuario user = new Usuario(DadosUsuario.split(":")[1], DadosUsuario.split(":")[2], DadosUsuario.split(":")[3]);
                            listaUsers.add(user);
                            System.out.println("Tamanho da Lista de Usuarios "+listaUsers.size());
                            //telaServidor.exibeMensagem("\nTamanho da Lista de Usuarios "+listaUsers.size());
                            String AbraTelaLogin = "AbraTelaLogin:";
                            escrevendoProCliente.writeUTF("AbraTelaLogin:");
                    }else
                    if(listaUsers.size() > 0){
                        boolean forresultado = true;
                        for(int i=0; i< listaUsers.size(); ++i){
                            Usuario usuario = (Usuario)listaUsers.get(i);
                        //    System.out.println("entrei no for");
                            if(usuario.getEmail().equals(DadosUsuario.split(":")[3])){
                             //   System.out.println("Este email ja existe");
                                String JaExisteEsteEmail = "Este Email já esta cadastrado!:";
                                escrevendoProCliente.writeUTF(JaExisteEsteEmail);
                                System.out.println(JaExisteEsteEmail);
                               // telaServidor.exibeMensagem("\n " + JaExisteEsteEmail);
                                forresultado = false;
                                break;
                             }
                        }
                        if(forresultado == true){
                         //   System.out.println("Vim pra ca");
                            Usuario user = new Usuario(DadosUsuario.split(":")[1], DadosUsuario.split(":")[2], DadosUsuario.split(":")[3]);
                            listaUsers.add(user);
                            System.out.println("Tamanho da Lista de Usuarios "+listaUsers.size());
                          //  telaServidor.exibeMensagem("\nTamanho da Lista de Usuarios "+listaUsers.size());
                            String AbraTelaLogin = "AbraTelaLogin:";
                            escrevendoProCliente.writeBytes(AbraTelaLogin);
                        }    
                    }
                    
                }
                if(DadosUsuario.split(":")[0].equals("LOGIN")){
                    //mandar sinal para abrir agenda pro cliente
                }
                
            } catch (IOException ex) {
                System.out.println("erro9:"+ ex.getMessage());
            } 
            
        } 
    
}
